package jaux.tank.service.system;


import java.util.List;

import jaux.tank.bean.entity.system.Menu;
import jaux.tank.bean.vo.node.MenuNode;
import jaux.tank.bean.vo.node.Node;
import jaux.tank.bean.vo.node.ZTreeNode;

/**
 * Created  on 2018/3/23 0023.
 *
 */
public interface MenuService {

    /**
     * 删除菜单
     *
     * @Date 2017/5/5 22:20
     */
    void delMenu(String menuId);

    /**
     * 删除菜单包含所有子菜单
     *
     * @Date 2017/6/13 22:02
     */
    void delMenuContainSubMenus(String menuId);

    /**
     * 根据角色列表查询菜单树
     * @param roleList
     * @return
     */
    List<MenuNode> getMenusByRoleIds(List<String> roleList);
    List<MenuNode> getMenusTreeByRoleIds(List<String> roleList);

    /**
     * 查询菜单树
     */
    List<MenuNode> getMenus();

    List<ZTreeNode> menuTreeList();

    List<ZTreeNode> menuTreeListByMenuIds(List<String> menuIds);

    /**
     * 设置menu的pcodes
     * @param menu
     */
    void menuSetPcode( Menu menu);


    List<Node> generateMenuTreeForRole(List<ZTreeNode> list);
}
